home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / tex / inputs / select.tex < prev    next >
Text File  |  1991-05-20  |  1KB  |  31 lines

  1. %From Tugboat volume 8, number 2 july 1987
  2. %by Donald Knuth
  3. %
  4. %  The idea is to make TeX look for a file called pages.tex.  if such a
  5. %file doesn't exit, everything works as before, Otherwise the file
  6. %should contain a list of apge numbers, one per line, in the order that
  7. %they will be generated.  After the last page number has been matched,
  8. %all further pages will be printed.  Thus, if you want ot print pages
  9. %123 and all pages from 300 onwards, your file pages.tex should say
  10. %    123 
  11. %    300 
  12. %but if you want to print pages 123 and 300 only, the file should say,
  13. %e.g.,
  14. %    123
  15. %    300
  16. %    -99999999999 % impossible number   
  17. %so that the end of file will never occur.
  18. %
  19.  
  20. \let\Shipout=\shipout
  21. \newread\pages \newcount\nextpage \openin\pages=pages
  22. \def\getnextpage{\ifeof\pages\else
  23.  {\endlinechar=-1\read\pages to\next \ifx\next\empty % in this case we
  24. should have eof now \else\global\nextpage=\next\fi}\fi}
  25. \ifeof\pages\else\message{OK, I'll ship only the requested pages!}
  26.  \getnextpage\fi
  27. \def\shipout{\ifeof\pages\let\next=\Shipout
  28.  \else\ifnum\pageno=\nextpage\getnextpage\let\next=\Shipout
  29.   \else\let\next=\Tosspage\fi\fi \next}
  30. \newbox\garbage \def\Tosspage{\deadcycles=0\setbox\garbage=}
  31.